<%@page import="java.util.Locale"%>
<%@page import="java.text.DecimalFormat"%>
<%@page import="java.text.NumberFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" trimDirectiveWhitespaces="true"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>자바 표준 태그 라이브러리:JSTL</title>
</head>
<body>
	<h1>자바 표준 태그 라이브러리:JSTL</h1>
	<h3>i18n</h3>
	<p>포매팅 태그:숫자나 날짜를 특정형식으로 지정해서 출력</p>
	<p>formatNumber:문자를 숫자(정수,실수,통화,퍼센트)형태로 형식화해서 출력해 줌 </p>
	<p>formatDate:</p>
	<p>parseNumber:</p>
	<p>requestEncoding:클라이언트의 요청 인코딩 설정</p>
	
	<p><fmt:formatNumber value="12"/></p>
	<p><fmt:formatNumber value="12" type="number"/></p>
	<p><fmt:formatNumber value="12345" type="number" maxIntegerDigits="3"/>(maxIntegerDigits:3)</p>
	<p><fmt:formatNumber value="12.345" type="number" minIntegerDigits="2"/>(minIntegerDigit:2)</p>
	<p><fmt:formatNumber value="12.345" type="number" minFractionDigits="2"/>(minFractionDigits="2")</p>
	<p><fmt:formatNumber value="12.345" type="number" maxFractionDigits="2"/>(maxFractionDigits="2")</p>
	<p><fmt:formatNumber value="12345.670" type="number" pattern=".00#"/>(pattern=".00#")</p>
	<p><fmt:formatNumber value="12345.60" type="number" pattern="#,##00.0#"/>(pattern="#,##00.0#")</p>
	<p><fmt:formatNumber value="0.12" type="percent"/>(type="percent")</p>
	<p><fmt:formatNumber value="0.12" type="percent" minFractionDigits="1"/>(minFractionDigits="1")</p>
	<p><fmt:formatNumber value="12345" type="currency"/>(type="currency")</p>
	
	<hr/>
	<%
		//format("형식문자열","값")
		String result = String.format("%d",12);
		out.println(result);
		result = String.format("%3.1f",123.45);
		out.println(result);
		
	
	%>
	<hr/>
	<%
		//NumberFormat:숫자를 정수,실수,통화,퍼센트로 변환 출력
		NumberFormat nf=NumberFormat.getNumberInstance();
		out.println(nf.format(12));
		out.println(nf.format(12345));//자동으로 , 가 추가
		
		nf.setMaximumIntegerDigits(3);//총 자리수 제한
		out.println(nf.format(12345));
		
		nf.setMinimumFractionDigits(2);//소수부 자리 제한
		out.println(nf.format(12.3));
		
		nf=NumberFormat.getPercentInstance();//퍼센트 처리
		out.println(nf.format(0.10));
		
		nf=NumberFormat.getCurrencyInstance();//통화 처리
		out.println(nf.format(12345678));
		
		nf=NumberFormat.getCurrencyInstance(Locale.US);//국가 변경
		out.println(nf.format(12345678));
	%>
	<hr/>
	<%
		//패턴문자 #,0을 이용해서 숫자 출력
		//패턴:숫자를 특정형식으로 출력하기 위해 사용하는 특수한 문자
		//#:해당 자리에 숫자가 없는 경우 공백으로 출력(정수부)
		//  해당자리 다음에 숫자가 있는 경우 반올림 출력(소수부)
		//0:해당자리에 숫자가 없는 경우(정수부)
		//  해당 자리 숫자가 없는 경우 0 출력(소수부)
		DecimalFormat df=new DecimalFormat();
		df.applyPattern("0.0#");
		out.println(df.format(12345.678));
		df.applyPattern("#,##0.0#");
		out.println(df.format(12345.670));
	%>
	<hr/>
	
</body>
</html>